Skip to content

Conversation

@marcelsavegnago
Copy link
Member

@marcelsavegnago marcelsavegnago commented Dec 31, 2025

depende: #4340

Adiciona suporte para NFSe Nacional na integração FocusNFE

Resumo

Esta PR adiciona suporte completo para emissão de Notas Fiscais de Serviços (NFSe) através da API Nacional da FocusNFE, além do suporte já existente para NFSe Municipal. A implementação abrange múltiplos módulos do sistema de localização brasileira do Odoo.

Mudanças Principais

1. Módulo l10n_br_nfse

  • Adicionadas constantes e lógica para processamento de NFSe Nacional
  • Suporte para códigos tributários nacionais em documentos e linhas de documento

2. Módulo l10n_br_nfse_focus (Principal)

  • Novo modelo nfse_nacional.py: Implementação completa da API Nacional da FocusNFE
  • Refatoração do modelo document.py: Separação de lógica entre NFSe Municipal e Nacional
  • Novo modelo nfse_municipal.py: Extração da lógica municipal para melhor organização
  • Novos helpers e constantes: Utilitários para processamento de NFSe Nacional
  • Configuração de empresa: Novo campo para seleção do tipo de API (Municipal ou Nacional)
  • Testes abrangentes: Adição de mais de 900 linhas de testes para garantir qualidade
  • Documentação atualizada: README e arquivos de configuração/uso atualizados

5. Documentação

  • Atualização do README principal com informações sobre NFSe Nacional
  • Melhorias nos arquivos de configuração e uso
  • Descrição atualizada do módulo incluindo ambos os tipos de emissão

Funcionalidades

NFSe Municipal (existente)

  • Emissão através da API municipal da FocusNFE
  • Suporte para códigos tributários municipais

NFSe Nacional (novo)

  • Emissão através da API nacional da FocusNFE
  • Suporte para Código Tributário Nacional (NBS)
  • Compatibilidade com códigos tributários municipais quando aplicável
  • Processamento completo de documentos fiscais nacionais

Configuração

A configuração permite escolher entre:

  • NFSe Municipal: API municipal da FocusNFE (padrão)
  • NFSe Nacional: API nacional da FocusNFE

A seleção é feita através do campo "Tipo FocusNFe NFSe" na configuração fiscal da empresa.

Impacto

  • ✅ Compatibilidade retroativa mantida (NFSe Municipal continua funcionando)
  • ✅ Novos campos e funcionalidades adicionados sem quebrar funcionalidades existentes
  • ✅ Testes abrangentes garantem qualidade e estabilidade
  • ✅ Documentação completa e atualizada

Testes

  • Testes unitários adicionados para NFSe Nacional
  • Cobertura de testes expandida significativamente
  • Validação de integração com API da FocusNFE

Referências

  • Documentação FocusNFE: https://focusnfe.com.br/
  • API Nacional: Suporte para emissão de NFSe através da plataforma nacional

@OCA-git-bot
Copy link
Contributor

Hi @AndreMarcos, @ygcarvalh, @luismalta, @mileo,
some modules you are maintaining are being modified, check this out!

@marcelsavegnago marcelsavegnago force-pushed the 16.0-l10n_br_focus-add-nfsenac-plus branch 6 times, most recently from c763350 to cd219d6 Compare January 7, 2026 04:56
@marcelsavegnago marcelsavegnago marked this pull request as ready for review January 7, 2026 05:31
@marcelsavegnago marcelsavegnago changed the title [WIP][16.0] l10n_br_focus: add nfsenac - refactor [16.0][IMP] l10n_br_focus: add nfsenac - refactor Jan 7, 2026
@marcelsavegnago marcelsavegnago changed the title [16.0][IMP] l10n_br_focus: add nfsenac - refactor [16.0][IMP] l10n_br_focus: add nfse nacional support Jan 7, 2026
@antoniospneto
Copy link
Contributor

image

@marcelsavegnago será que não é melhor separar pelo menos as alterações dos outros módulos que são mais simples, para ser mais facil revisar? que ai o que é simples já vai entrando antes

@marcelsavegnago
Copy link
Member Author

marcelsavegnago commented Jan 8, 2026

image @marcelsavegnago será que não é melhor separar pelo menos as alterações dos outros módulos que são mais simples, para ser mais facil revisar? que ai o que é simples já vai entrando antes

Separei pelos commits.. fora o l10n_br_nfse_focus, são poucas alterações até.... mas se for o caso posso dividir em duas PRs.

@marcelsavegnago
Copy link
Member Author

@antoniospneto criei uma outra PR apenas para os commits no fiscal e account.

#4340

@marcelsavegnago marcelsavegnago force-pushed the 16.0-l10n_br_focus-add-nfsenac-plus branch 4 times, most recently from cfdf1b9 to 8527922 Compare January 8, 2026 21:39
@marcelsavegnago marcelsavegnago force-pushed the 16.0-l10n_br_focus-add-nfsenac-plus branch 2 times, most recently from 6a0ed0e to a007c7c Compare January 12, 2026 15:59
@marcelsavegnago marcelsavegnago force-pushed the 16.0-l10n_br_focus-add-nfsenac-plus branch 2 times, most recently from c5554b0 to d236d90 Compare January 15, 2026 15:15
@marcelsavegnago marcelsavegnago force-pushed the 16.0-l10n_br_focus-add-nfsenac-plus branch from d236d90 to b308ffe Compare January 15, 2026 15:19
@marcelsavegnago marcelsavegnago marked this pull request as ready for review January 15, 2026 15:49
Copy link
Member

@rvalyi rvalyi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, code review, no test

@OCA-git-bot
Copy link
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@marcelsavegnago
Copy link
Member Author

/ocabot merge major

@OCA-git-bot
Copy link
Contributor

On my way to merge this fine PR!
Prepared branch 16.0-ocabot-merge-pr-4323-by-marcelsavegnago-bump-major, awaiting test results.

@OCA-git-bot OCA-git-bot merged commit 52e2654 into OCA:16.0 Jan 16, 2026
7 checks passed
@OCA-git-bot
Copy link
Contributor

Congratulations, your PR was merged at 9c2bad4. Thanks a lot for contributing to OCA. ❤️

@marcelsavegnago marcelsavegnago deleted the 16.0-l10n_br_focus-add-nfsenac-plus branch January 16, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants